In [3]:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
In [4]:
zeros = np.array([3, 5, 10, -2])
fig, ax = plt.subplots()
for z in zeros:
num = 9/z * np.array([1, z])
den = np.array([1, 2, 9])
t, resp = signal.step((num, den))
ax.plot(t, resp, label='z = {}'.format(z))
ax.grid()
ax.legend()
plt.show()
Smaller zeros cause a larger overshoot (larger derivative component of response)
The larger the zero the less of an impact it has (moving to the left is better)
RHP zeros are non-minimum phase and cause the system to initially go in the opposite direction. This might be bad for your system. Imagine your car initially going right whenever you steer left.